<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--

Design by Free CSS Templates
http://www.freecsstemplates.org
Released for free under a Creative Commons Attribution 2.5 License
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>SEng 466 Project Page</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="../default.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="wrapper">

<?php include('../includes/header.php'); ?>

</div>

<!-- start page -->
<div id="page">
	<!-- start content -->
	<div id="content">
		<div class="post">
			<h1 class="title">Software Environment</h1>
			<p>This section discusses the development environment we used and encountered issues.
			</p>
			<h2>Basic Arduino IDE</h2>
			<p>When first starting Arduino programming, the integrated
			development environment (IDE) makes creating a "sketch" of code
			very easy. Even if someone has never programmed before, following
			some sample projects will get code executing on the board in a
			matter of minutes.
			</p>

			<p>There is a lot of abstraction when using the provided IDE
			and a lot of things are going on behind the scenes that
			are not visible to the developer. Due to the nature of this
			project, using the IDE will not provide the depth that we will
			need to accomplish some lower level tasks. For this reason we will
			be using Eclipse for most of our developing.
			</p>

			<h2>AVR Dude and AVR-GCC</h2>
			<p>In order to program the Atmel microcontroller's eeprom and flash memory the program AVR Dude is used. It is part of a suite of executables that are installed for the development environment. AVR-GCC is another part of that environment providing a cross compiler, debugger and other open source tools needed for development on the AVR platform. Eclipse has plugins that integrate AVR Dude and AVR-GCC tools into the IDE which allow AVR projects to be built and transferred to the Arduino hardware.
			</p>


			<h2>Eclipse</h2>
			<p>Setting up Eclipse for Arduino was fairly straight
			forward since the lab TA had a nice tutorial on his web page. It
			does take a while to set up a project and begin coding though. The hope
			is that it will save time in the long run, but only time will tell.
			We have set up a Subversion repository to host our source code, but
			could not get the Eclipse subversion plugin to work correctly.
			The plugin would act as a subversion client and allow us to commit
			and update our source code in Eclipse. This wasn't an issue as we
			were still able to use regular SVN clients and import the project
			into eclipse from the local file system.
			</p>

			<h2>Major Issues with Eclipse</h2>
			<p>Once our three basic C++ projects were created (one for
			each of the three Arduino boards we are using) we were ready
			to start coding and sharing the projects amongst the three of
			us. We soon found out that some of the files we are including, namely
			a library .a file (lib.a) that was compiled by the Arduino IDE, were
			not necessary. Due to the nature of embedded programming and the
			limited storage on the boards, we wanted to keep the code overhead
			to a minimum.
			</p>

			<p>We began working with Eclipse and including core
			header and source files and excluding the library file. It seemed to
			work on the lab machine without the library file, but would not work
			on the Macintosh Eclipse environment. Some of the projects would work
			with the ATMega board, but would not work with the UNO boards. We
			are including the library files for projects on the UNO boards and
			will be using the Macintosh environment as the AVRDude version seems to
			work better than the version on the lab Windows machines.
			</p>

		</div>
	</div>

<?php include('../includes/sidebar.php'); ?>
	

	<!-- end content -->
	<div style="clear: both;">&nbsp;</div>
</div>
<!-- end page -->
</body>
</html>
